package javase.ch06.proxy.work;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class CalculatorTest {
    public static void main(String[] args) {
        // 创建目标对象
        ArithmeticCalculator target = new ArithmeticCalculatorImpl();
        
        // 创建调用处理器
        InvocationHandler handler = new LoggingInvocationHandler(target);
        
        // 创建动态代理对象
        ArithmeticCalculator proxy = (ArithmeticCalculator) Proxy.newProxyInstance(
                target.getClass().getClassLoader(),
                target.getClass().getInterfaces(),
                handler
        );
        
        // 测试代理对象的方法
        proxy.add(10, 20);
        proxy.sub(50, 30);
        proxy.mul(4, 5);
        proxy.div(100, 20);
    }
}